package com.mjk.common.core.jdbc.annotation;

import com.mjk.common.tools.excel.annotation.ExportFiled;
import org.apache.ibatis.type.JdbcType;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Target({java.lang.annotation.ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@ExportFiled
public @interface Filed {
    int lenght() default 0;

    JdbcType jdbcType() default JdbcType.NULL;

    String cloum() default "";//对应表的列名称
    /**
     * sql字段的注释 在html界面生成的时候 会去除 [] 之内的内容
     */
    @AliasFor(annotation = ExportFiled.class,value = "comment") String comment() default "";//sql字段注释
    
	/**
	 * 页面展示 数据类型
     */
	FieldType type() default FieldType.INPUT;
	/**
	 * 下拉框的默认值 以json形式存在 只有type为select才有效
     */
	String selectValue() default "[{\"value\":\"0\",\"label\":\"否\"},{\"value\":\"1\",\"label\":\"是\"}]";
	
	enum FieldType{
		INPUT,//普通input
		TIME,//时间
		TIMEDATA,//日期时间
		DATA,//日期
		SELECT,//下拉选择
		SELECT_INPUT// 带url地址的下拉框
	}
}